<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <button @click="changeScore(20)">修改分数</button>
</div>
</body>
</html>
<script src="../../js/vue.js"></script>
<script>
    new Vue({
        el: "#app",
        data: {
            student: {
                name: "小明",
                score: 10
            }
        },
        methods: {
            changeScore(num) {
                console.log(this.student.name + '的分数加' + num);
                this.student.score += num;
            },
        },
        watch: {
            // 如果 `score` 发生改变，这个函数就会运行
            student: {
                handler(newVal) {
                    console.log(`数据已经变化了`);
                    alert(newVal.score);
                },
                // 如果需要对数组中的元素或者对象的属性变化需要使用深度监听，除了要加上deep: true外，函数的名字也必须要是handler，否则会导致监听失效
                deep: true
            }
        },
    })
</script>
<style>
    button {
        background-color: mediumpurple;
        width: 80px;
        height: 50px;
    }
</style>
